import tensorflow as tf
#为了区分需要计算梯度信息的张量与不需要计算梯度信息的张量，TensorFlow 增加了tf.Variable类型用来记录梯度信息。
#通过 tf.Variable()函数可以将普通张量转换为待优化张量。
a=tf.constant([-1,0,1,2])
#优化张量  创建 Variable 对象时是默认启用优化标志，可以设置trainable=False 来设置张量不需要优化；
aa=tf.Variable(a)
aa1=tf.Variable(a,trainable=False)
print('查看Variable类型张量的name属性:\n',aa.name)
print('__________')
print('查看Variable类型张量的trainable属性：\n',aa1.trainable)

# 直接创建 Variable 张量
a = tf.Variable([[1,2],[3,4]]) 
print('查看Variable类型张量的name属性：\n',a.name)
print('-------------')
print('查看Variable类型张量的trainable属性：\n',a.trainable)


# 在TensorFlow 2.x中，推荐使用tf.Variable来定义变量  
a = tf.Variable(2)  
b = tf.Variable(3)  
  
# 定义对应的操作  
add = tf.add(a, b)  
mul = tf.multiply(a, b)  
  
# TensorFlow 2.x中不需要显式调用tf.Session()，因为默认启用了Eager Execution  
print("Addition with variables:", add.numpy())  
print("Multiplication with variables:", mul.numpy())